package io.itit.ecp.admin.provide.action.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.itit.grass.common.provide.action.validation.IAdd;
import io.itit.grass.common.provide.action.validation.IUpdate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Null;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * <p>
 *
 * @Author：Roy
 * @Description：碳中和规划保存更新参数
 * @Date：Create by 2023-11-23 16:28:52
 */
@Data
@ToString
@ApiModel("碳中和规划保存更新参数")
public class CarbonNeutralityPlanReq implements Serializable {

    private static final long serialVersionUID = 1L;

    @Null(groups = IAdd.class)
    @NotBlank(groups = IUpdate.class)
    @ApiModelProperty("主键")
    private String id;

    /* 项目Id */
    @ApiModelProperty("项目Id")
    private String sceneProjectId;

    /* 生效开始日期 */
    @ApiModelProperty("生效开始日期")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
    private LocalDate effectiveTimeStart;

    /* 生效结束日期 */
    @ApiModelProperty("生效结束日期")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
    private LocalDate effectiveTimeEnd;

    /*规划碳排 */
    @ApiModelProperty("规划碳排")
    private BigDecimal planCarbonEmissions;

    /*规划零碳 */
    @ApiModelProperty("规划零碳")
    private BigDecimal planCarbonZero;

    /*规划碳汇*/
    @ApiModelProperty("规划碳汇")
    private BigDecimal planCarbonSequestration;

    /* 规划碳中和 */
    @ApiModelProperty("规划碳中和")
    private BigDecimal planCarbonNeutrality;

}
